<?php
/**
 * 生成RSA密钥对
 * 运行此脚本生成公钥和私钥
 */

// 创建keys目录
$keys_dir = __DIR__ . '/keys';
if (!is_dir($keys_dir)) {
    mkdir($keys_dir, 0755, true);
}

// 生成RSA密钥对
$config = array(
    "digest_alg" => "sha256",
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);

$res = openssl_pkey_new($config);

if (!$res) {
    die("生成密钥对失败\n");
}

// 获取私钥
openssl_pkey_export($res, $private_key);

// 获取公钥
$public_key = openssl_pkey_get_details($res);
$public_key = $public_key["key"];

// 保存私钥
file_put_contents($keys_dir . '/private_key.pem', $private_key);

// 保存公钥
file_put_contents($keys_dir . '/public_key.pem', $public_key);

echo "密钥对生成成功！\n";
echo "私钥文件: " . $keys_dir . "/private_key.pem\n";
echo "公钥文件: " . $keys_dir . "/public_key.pem\n";
echo "\n";
echo "请确保私钥文件的安全，不要泄露给他人！\n";
?>
